Checks whether a variable's contents match one of the items in a list.
if Var in MatchList
if Var not in MatchList
if Var contains MatchList
if Var not contains MatchList
Var | The name of the variable whose contents will be checked. For the "in" operator, an exact match with one of the list items is required. For the "contains" operator, a match occurs more easily: whenever Var contains one of the list items as a substring. |
MatchList | A comma-separated list of strings, each of which will be compared to the contents of Var for a match. Any spaces or tabs around the delimiting commas are significant, meaning that they are part of the match string. For example, if MatchList is set to ABC , XYZ then Var must contain either ABC with a trailing space or XYZ with a leading space to cause a match. Two consecutive commas results in a single literal comma. For example, the following would produce a single literal comma at the end of string1: If Var In string1,,,string2. Similarly, the following list contains only a single item with a literal comma inside it: If Var In single,,item. To include a blank item in the list, make the first character a comma as in this example: If Var In ,string1,string2 (when using the "contains" operator, a blank item will always result in a match since the empty string is found in all strings). Because the items in MatchList are not treated as individual parameters, the list can be contained entirely within a variable. In fact, all or part of it must be contained in a variable if its length exceeds 16383 since that is the maximum length of any script line. For example, MatchList might consist of %List1%,%List2%,%List3% -- where each of the sublists contains a large list of match phrases. Any single item in the list that is longer than 16384 characters will have those extra characters treated as a new list item. Thus, it is usually best to avoid including such items. |
The comparison is always done alphabetically, not numerically. For example, the string "11" would not match the list item "11.0".
The "contains" operator is the same as using IfInString/IfNotInString except that multiple search strings are supported (any one of which will cause a match).
"StringCaseSense On" can be used to make the comparison case sensitive.
If MatchList is long, it can be broken up into several shorter lines by means of a continuation section, which might improve readability and maintainability.
The operators "between", "is", "in", and "contains" are not supported in expressions.
if var between, IfEqual/Greater/Less, IfInString, StringCaseSense, Blocks, Else
if var in exe,bat,com MsgBox The file extension is an executable type. if var in 1,2,3,5,7,11 ; Avoid spaces in list. MsgBox %var% is a small prime number. if var contains 1,3 ; Note that it compares the values as strings, not numbers. MsgBox Var contains the digit 1 or 3 (Var could be 1, 3, 10, 21, 23, etc.) if var in %MyItemList% MsgBox %var% is in the list. InputBox, UserInput, Enter YES or NO if UserInput not in yes,no MsgBox Your input is not valid. WinGetTitle, active_title, A if active_title contains Address List.txt,Customer List.txt MsgBox One of the desired windows is active. if active_title not contains metapad,Notepad MsgBox But the file is not open in either Metapad or Notepad.